VirtuosoのGUIからデータをロードしてSPARQLをたたく

では、インストールしたVirtuosoにRDF形式のデータをロードしてSPARQLをかけてみましょう。
今回はSPARQL習得をちょっぴり意識して、W3CのSPARQL1.1の仕様書のデータ&クエリを使ってみます。

Virtuosoには色々なデータのロード方法が用意されていますが、今回は一番簡単なGUIでのロードを行います。数M程度の小さなファイルをちょっとロードしたい、という場合には便利です。

ロードデータの準備

まずはロードするRDFファイルを準備します。
有志の方が翻訳してくれた日本語版のSPARQL1.1仕様書がありますので、その中の一つを使用します。

たとえば2.2章の「複数マッチ」の記載部分(リンク)にあるデータをコピーして、テキストエディタに貼り付けてローカルに保存します。この時のファイル名は任意ですが、拡張子は「.ttl」にしてください。

w3c_sparql11_2_2.ttl

 

データのロード

ロードするファイルが準備できたら、Virtuosoを起動させた状態でブラウザを開いて以下のURLにアクセスします。

http://localhost:8890/

左上の[Conductor]をクリックします。

top

 

ログインのためのアカウントとパスワードを聞かれるので、初期値で両方とも[dba]と入力してログインしてください。

login

尚、dbaは管理者アカウントなので、セキュリティを気にする環境であれば、はじめにパスワードを変えておきましょう。パスワードはログイン後の画面の [System Admin] – [User Account] – [dba(Edit)]から変更できます。

 

ログインができたら、[Linked Data] – [Quad Store Upload]からデータのアップロード画面を開きます。

upload1

 

先ほど準備したロード用のファイルを選択し、アップロードするグラフ名を入力します。
グラフ名は任意の値で構いませんが、今回のファイルは「http://localhost:8890/sparql11_2_2」としてみます。
紛らわしくてよく間違えるのですが、左側は[Cancel]ボタンで右側が[Upload]ボタンになります。

do_upload

グラフ名をつけておくとロードするトリプルを一つのデータセットとして扱えます。最初のうちはRDBにおけるテーブルのような感覚でよいでしょう。
デフォルトのグラフ名のままでもロードはできますが、次々にファイルをロードした場合に同じグラフにデータが混ざってしまい、SPARQLを打った時に余計なデータまで返ってくることがあります。クエリの練習をしているうちは細かくグラフ名を指定して置いたほうがよいでしょう。

 

成功すると地味に「Upload finished」とメッセージが表示されます。

finish_upload

 

SPARQLを打ってみる

ロードしたデータに対してSPARQLを打ってみましょう。
先ほどSPARQL1.1仕様書のページから取得したデータに対するSPARQLを投げてみます。オリジナルクエリはこちら

ここでSPARQLに一箇所だけ手を加えて、先ほどロード時に指定したグラフだけを検索対象にするようにします。具体的にはSELECTとWHEREの間にFROM句を追加してグラフを限定します。もしグラフ名を忘れた場合にはタブの[Graphs]から確認できます。

 

タブで[SPARQL]を選択して、クエリを実行します。

sparql

 

クエリ結果が SPARQL1.1仕様書に記載されているものと同じであることを確認してください。

 

仕様書を読んだだけでは分かりにくければ、こんな風に実際にSPARQLを試してみれば、理解を助けてくれるでしょう。

尚、ロードしたデータを削除したい場合には[Graphs] - [Graphs] で対象グラフの [delete]から消せます。

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">